package com.qianyu.versioncontrolcore.entity.dto;


import com.qianyu.versioncontrolcore.entity.base.PageDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

@Data
@ApiModel(value = "VersionConfDto")
public class VersionConfDto {


    @Data
    @ApiModel(value = "VersionConfDto&VersionConfSaveDto")
    public static class  VersionConfSaveDto{

        /**
         * 版本号
         */
        @NotBlank(message = "[版本号]不能为空")
        @Size(max = 20, message = "编码长度不能超过20")
        @ApiModelProperty("版本号")
        private String version;
        /**
         * 桶容量
         */
        @NotNull(message = "[桶容量]不能为空")
        @ApiModelProperty("桶容量")
        private Integer burst;
        /**
         * 多少秒内
         */
        @NotNull(message = "[多少秒内]不能为空")
        @ApiModelProperty("多少秒内")
        private Integer time;
        /**
         * 间隔秒
         */
        @NotNull(message = "[间隔秒]不能为空")
        @ApiModelProperty("间隔秒")
        private Integer space;
        /**
         * 优先级
         */
        @NotNull(message = "[优先级]不能为空")
        @ApiModelProperty("优先级")
        private Integer priority;
    }

    @Data
    @ApiModel(value = "VersionConfDto&VersionConfUpdateDto")
    public static class  VersionConfUpdateDto{

        /**
         * 主键id
         */
        @NotNull(message = "id不能为空")
        @ApiModelProperty("主键id")
        private Long id;
        /**
         * 版本号
         */
        @ApiModelProperty("版本号")
        private String version;
        /**
         * 桶容量
         */
        @ApiModelProperty("桶容量")
        private Integer burst;
        /**
         * 多少秒内
         */
        @ApiModelProperty("多少秒内")
        private Integer time;
        /**
         * 间隔秒
         */
        @ApiModelProperty("间隔秒")
        private Integer space;
        /**
         * 优先级
         */
        @ApiModelProperty("优先级")
        private Integer priority;
    }

    @Data
    @ApiModel(value = "VersionConfDto&VersionConfPageDto")
    public static class VersionConfPageDto extends PageDTO {
        /**
         * 版本
         */
        @ApiModelProperty("版本号")
        private String version;
    }

    @Data
    @ApiModel(value = "VersionConfDto&VersionRequestDto")
    public static class VersionRequestDto{
        /**
         * 版本
         */
        @ApiModelProperty("版本号")
        private String version;
    }
}
